home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 1.iso / dist / fw_enscript.idb / usr / freeware / share / enscript / hl / vhdl.st.z / vhdl.st
Encoding:
Text File  |  2002-04-08  |  2.9 KB  |  90 lines

  1. /**
  2.  * Name: vhdl
  3.  * Description: VHSIC Hardware Description Language (VHDL)
  4.  *        Highlights keywords, comments and special vhdl
  5.  *        constructs.  Please send comments or suggestions.
  6.  *
  7.  * Author: Brian Silveira (brian@nortel.ca)
  8.  *
  9.  */
  10.  
  11. state vhdl extends HighlightEntry
  12. {
  13.   /* Comments. */
  14.   /--/ {
  15.     comment_face (true);
  16.     language_print ($0);
  17.     call (eat_one_line);
  18.     comment_face (false);
  19.   }
  20.  
  21.   /* String constants. */
  22.   /\"/ {
  23.     string_face (true);
  24.     language_print ($0);
  25.     call (c_string);
  26.     string_face (false);
  27.   }
  28.  
  29.   /* Keywords.
  30.      (build-re '(abs access after alias all and architecture array
  31.      assert attribute begin begin block body body buffer bus case
  32.      component configuration configuration constant disconnect downto
  33.      else elsif end entity exit file for function function generate
  34.      generic guarded if in inout is label library linkage loop map
  35.      mod nand new next nor not null of on open or others out package
  36.      port procedure process range record register rem report return
  37.      reverse select severity signal subtype then to transport type
  38.      units until use variable wait when while with with xor)
  39.      t)
  40.    */
  41.   /\b([aA]([bB][sS]|[cC][cC][eE][sS][sS]|[fF][tT][eE][rR]\
  42. |[lL]([iI][aA][sS]|[lL])|[nN][dD]\
  43. |[rR]([cC][hH][iI][tT][eE][cC][tT][uU][rR][eE]|[rR][aA][yY])\
  44. |[sS][sS][eE][rR][tT]|[tT][tT][rR][iI][bB][uU][tT][eE])\
  45. |[bB]([eE][gG][iI][nN]()|[lL][oO][cC][kK]|[oO][dD][yY]()\
  46. |[uU]([fF][fF][eE][rR]|[sS]))\
  47. |[cC]([aA][sS][eE]\
  48. |[oO]([mM][pP][oO][nN][eE][nN][tT]\
  49. |[nN]([fF][iI][gG][uU][rR][aA][tT][iI][oO][nN]()|[sS][tT][aA][nN][tT])))\
  50. |[dD]([iI][sS][cC][oO][nN][nN][eE][cC][tT]|[oO][wW][nN][tT][oO])\
  51. |[eE]([lL][sS]([eE]|[iI][fF])|[nN]([dD]|[tT][iI][tT][yY])|[xX][iI][tT])\
  52. |[fF]([iI][lL][eE]|[oO][rR]|[uU][nN][cC][tT][iI][oO][nN]())\
  53. |[gG]([eE][nN][eE][rR]([aA][tT][eE]|[iI][cC])|[uU][aA][rR][dD][eE][dD])\
  54. |[iI]([fF]|[nN](|[oO][uU][tT])|[sS])\
  55. |[lL]([aA][bB][eE][lL]|[iI]([bB][rR][aA][rR][yY]|[nN][kK][aA][gG][eE])\
  56. |[oO][oO][pP])\
  57. |[mM]([aA][pP]|[oO][dD])\
  58. |[nN]([aA][nN][dD]|[eE]([wW]|[xX][tT])|[oO]([rR]|[tT])|[uU][lL][lL])\
  59. |[oO]([fF]|[nN]|[pP][eE][nN]|[rR]|[tT][hH][eE][rR][sS]|[uU][tT])\
  60. |[pP]([aA][cC][kK][aA][gG][eE]|[oO][rR][tT]\
  61. |[rR][oO][cC][eE]([dD][uU][rR][eE]|[sS][sS]))\
  62. |[rR]([aA][nN][gG][eE]\
  63. |[eE]([cC][oO][rR][dD]|[gG][iI][sS][tT][eE][rR]|[mM]|[pP][oO][rR][tT]\
  64. |[tT][uU][rR][nN]|[vV][eE][rR][sS][eE]))\
  65. |[sS]([eE]([lL][eE][cC][tT]|[vV][eE][rR][iI][tT][yY])|[iI][gG][nN][aA][lL]\
  66. |[uU][bB][tT][yY][pP][eE])\
  67. |[tT]([hH][eE][nN]|[oO]|[rR][aA][nN][sS][pP][oO][rR][tT]|[yY][pP][eE])\
  68. |[uU]([nN]([iI][tT][sS]|[tT][iI][lL])|[sS][eE])\
  69. |[vV][aA][rR][iI][aA][bB][lL][eE]\
  70. |[wW]([aA][iI][tT]|[hH]([eE][nN]|[iI][lL][eE])|[iI][tT][hH]())\
  71. |[xX][oO][rR])\b/ {
  72.     keyword_face (true);
  73.     language_print ($0);
  74.     keyword_face (false);
  75.   }
  76.  
  77.   /<=|=>/ {
  78.     reference_face (true);
  79.     language_print ($0);
  80.     reference_face(false);
  81.   }
  82. }
  83.  
  84.  
  85. /*
  86. Local variables:
  87. mode: c
  88. End:
  89. */
  90.